////
////  AliyunVideoTextCustomUIViewController.swift
////  funcode
////
////  Created by Wan Jiading on 2017/7/21.
////  Copyright © 2017年 WanJiading. All rights reserved.
////
//
//import UIKit
//import AliyunVodPlayerSDK
//import FDFullscreenPopGesture
//
//private let AppID = "LTAIbIoarj4IP0ba"
//private let AppSecret = "RGRp5VjwTpRAAS05tx9JLz0Bvg4sin"
//private let ApiKey = "m7ynwar5yi4m6f2lwpwytpeaefamj9nw4a9kgd66e47azwgcl4vhmd13swjoavo9"
//
//class AliyunVideoTextCustomUIViewController: UIViewController, AliyunVodPlayerDelegate, AliyunVodDownLoadDelegate {
//	
//	// MARK: 播放器
//	@IBOutlet weak var playerView: UIView!
//	@IBOutlet weak var playerViewTop: NSLayoutConstraint!
//	@IBOutlet weak var playerViewHeight: NSLayoutConstraint!
//	
//	// MARK: 操作栏
//	@IBOutlet weak var toolView: UIView!
//	@IBOutlet weak var playBtn: UIButton!
//	@IBOutlet weak var currentTimeLabel: UILabel!
//	@IBOutlet weak var progressSlider: UISlider!
//	@IBOutlet weak var totalTimeLabel: UILabel!
//	@IBOutlet weak var fullScreenBtn: UIButton!
//	@IBOutlet weak var navigationView: UIView!
//	@IBOutlet weak var titleLabel: UILabel!
//	@IBOutlet weak var toolViewHeight: NSLayoutConstraint!
//	@IBOutlet weak var playBtnWidth: NSLayoutConstraint!
//	@IBOutlet weak var sliderCenterY: NSLayoutConstraint!
//	@IBOutlet weak var sliderLeft: NSLayoutConstraint!
//	@IBOutlet weak var sliderRight: NSLayoutConstraint!
//	@IBOutlet weak var currentLabelLeft: NSLayoutConstraint!
//	@IBOutlet weak var currentTimeLabelLandscape: UILabel!
//	
//	// MARK: 视频质量切换
//	@IBOutlet weak var qualityBtn: UIButton!
//	@IBOutlet weak var qualityFDBtn: UIButton!
//	@IBOutlet weak var qualityLDBtn: UIButton!
//	
//	
//	// MARK: 金卡会员提醒
//	@IBOutlet weak var memberAlertView: UIView!
//	@IBOutlet weak var buyMemberLabel: UILabel!
//	@IBOutlet weak var buyMemberBtn: UIButton!
//	@IBOutlet weak var buyMemberBtnHeight: NSLayoutConstraint!
//	
//	// MKAR: 其他
//	@IBOutlet weak var coverImageView: UIImageView!
//	@IBOutlet weak var backBtn: UIButton!
//	@IBOutlet weak var replayBtn: UIButton!
//	
//	//
//	var player: AliyunVodPlayer?
//	var downloadManager: AliyunVodDownLoadManager?
//	var currentVideo: AliyunVodPlayerVideo?
//	var currentCartoonModel: CartoonModel?
//	/// 下载文件列表
//    var downloadInfos: [AliyunDownloadMediaInfo]?
//    var didDownloadedInfo: AliyunDownloadMediaInfo?
//	
//	var isFullScreen: Bool = false
//	var sliderLeftToSuperView: CGFloat = 0
//	var sliderRightToSuperView: CGFloat = 0
//	
//	/// 横屏下 视图正在显示
//	var showingViewLandspace = false
//	/// 音频加载完成
//	var videoLoadedCompletion = false
//	/// 需要播放
//	var needPlay = false
//	
//	/// 已下载文件，用于测试删除
//	var downladedVideoID: String?
//	var downloadedInfo: AliyunDownloadMediaInfo?
//	
//	// MARK: - 全局配置 方便快速修改
//	/// 页面加载完后自动播放
//	private let CurrentQuality = AliyunVodPlayerVideoQuality.videoFD
//	private let AutoPlayWhenPageLoaded = false
//	private let AutoPreparePlayWhenPageLoaded = false
//	private let AutoPrepareDownloadWhenPageLoaded = true
//	
//	// MARK: - 生命周期
//	
//    @IBOutlet weak var showSlider: UISlider!
//    @IBOutlet weak var progressView: UIProgressView!
//    @IBOutlet weak var cacheSlider: CacheSlider!
//    @IBAction func sliderChanged(_ sender: UISlider) {
//        progressView.progress = sender.value
//    }
//    
//    @IBAction func showSliderChanged(_ sender: UISlider) {
//        cacheSlider.playedColor = UIColor.rgb("9bc34e")
//        cacheSlider.noPlayedColor = UIColor.rgb("ffffff", alpha: 0.3)
//        cacheSlider.cachedColor = UIColor.rgb("ffffff")
//        
//        cacheSlider.value = sender.value
//    }
//    
//    @IBAction func changedSliderChanged(_ sender: UISlider) {
//        cacheSlider.cachedValue = sender.value
//    }
//    
//	private let videoId = "948143cb35eb469285506081cceb70bb"
//	
//	deinit {
//		DebugLogFunc()
//		SharedNotificationCenter.removeObserver(self, name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil)
//	}
//	
//    override func viewDidLoad() {
//        super.viewDidLoad()
//		
//		setupVideoPlayer()
//		setupDownloadManager()
//		setupControls()
//		setupLayout()
//		setupNotification()
//        
//        
//	}
//	
//	override func viewWillAppear(_ animated: Bool) {
//		super.viewWillAppear(animated)
//		
//		self.navigationController?.setNavigationBarHidden(true, animated: true)
//		SharedApplication.setStatusBarHidden(false, with: .none)
//		SharedApplication.setStatusBarStyle(.default, animated: true)
//        
//        
//        
//        let delegate = UIApplication.shared.delegate as! AppDelegate
//        delegate.allowRotate = 1
//	}
//    
//    override func viewWillDisappear(_ animated: Bool) {
//        super.viewWillDisappear(animated)
//        
//        
//        let delegate = UIApplication.shared.delegate as! AppDelegate
//        delegate.allowRotate = 0
//    }
//	
//	override func viewDidAppear(_ animated: Bool) {
//		super.viewDidAppear(animated)
//		
//		sliderLeftToSuperView = (self.view.bounds.width - progressSlider.width) * 0.5 - 9 + 12 // 因为播放按钮变大了，整体往右移动了12pt
//		sliderRightToSuperView = (self.view.bounds.width - progressSlider.width) * 0.5 - 9
//		
//		if player?.playerState() == .idle {
//			if AutoPreparePlayWhenPageLoaded {
//				preparePlay()
//			}
//			if AutoPlayWhenPageLoaded {
//				needPlay = true
//				preparePlay()
//			}
//			
//			if AutoPrepareDownloadWhenPageLoaded {
//				DispatchQueue.global().async { [weak self] in
//					self?.prepareDownload()
//				}
//			}
//		}
//	}
//	
//	override func viewDidDisappear(_ animated: Bool) {
//		super.viewDidDisappear(animated)
//	}
//	
//	// MARK: - 设置UI
//	
//	func setupControls() {
//		self.fd_interactivePopDisabled = true
//		
//		setupVideoPlayerView()
//		setupPlayBtn()
//		setupFullScreenBtn()
//		setupQualityBtn()
//		setupTimeLabels()
//		setupSlider()
//		setupNavigation()
//		setupBuyMemberView()
//		// TODO 加载封面图片
//		
//		totalTimeLabel.adjustsFontSizeToFitWidth = false
//		currentTimeLabel.adjustsFontSizeToFitWidth = false
//		currentTimeLabelLandscape.adjustsFontSizeToFitWidth = false
//	}
//	
//	func changeNewVideo() {
//		videoLoadedCompletion = false
//	}
//	
//	func setupLayout() {
//		if (isDeviceOrientationPortrait()) {
//			toolViewHeight.constant = 36
//			playerViewTop.constant = 20
//			if IPHONE6P {
//				playerViewHeight.constant = CGFloat(205 * 414 / 375)
//			} else if IPHONE6 {
//				playerViewHeight.constant = 205
//			} else {
//				playerViewHeight.constant = CGFloat(205 * 320 / 375)
//			}
//			sliderCenterY.constant = 0
//			playBtnWidth.constant = 36
//			sliderLeft.constant = 9
//			sliderRight.constant = 9
//		} else {
//			toolViewHeight.constant = 49
//			playerViewTop.constant = 0
//			playerViewHeight.constant = self.view.height
//			sliderCenterY.constant = -(toolViewHeight.constant * 0.5)
//			playBtnWidth.constant = 48
//			sliderLeft.constant = -sliderLeftToSuperView - 1
//			sliderRight.constant = -sliderRightToSuperView - 1
//		}
//	}
//	
//	func setupVideoPlayerView() {
//		if let playerView = player!.playerView {
//			self.playerView.addSubview(playerView)
//			playerView.snp.makeConstraints({ [weak self] (make) in
//				guard let strongSelf = self else { return }
//				
//				make.top.equalTo(strongSelf.playerView.snp.top)
//				make.left.equalTo(strongSelf.playerView.snp.left)
//				make.right.equalTo(strongSelf.playerView.snp.right)
//				make.bottom.equalTo(strongSelf.playerView.snp.bottom)
//			})
//			
//			let tapGR = UITapGestureRecognizer(target: self, action: #selector(tapPlayer))
//			playerView.addGestureRecognizer(tapGR)
//		}
//		self.playerView.bringSubview(toFront: self.toolView)
//	}
//	
//	func setupSlider() {
//		let image = generalImage(UIColor.rgb("9bc34e"), CGSize(width: 14, height: 14))
//		progressSlider.setThumbImage(image, for: .normal)
//		progressSlider.setThumbImage(image, for: .highlighted)
//		progressSlider.addTarget(self, action: #selector(sliderValueChanged(_:)), for: .valueChanged)
//		progressSlider.value = 0
//	}
//	
//	func sliderValueChanged(_ slider: UISlider) {
//		DebugLog(slider.value)
//		player?.seek(to: TimeInterval(slider.value))
//	}
//	
//	func setupPlayBtn() {
//		if isDeviceOrientationPortrait() {
//			playBtn.setImage(UIImage(named: "video_play"), for: .normal)
//			playBtn.setImage(UIImage(named: "video_pause"), for: .selected)
//		} else {
//			playBtn.setImage(UIImage(named: "video_play_full_screen"), for: .normal)
//			playBtn.setImage(UIImage(named: "video_pause_full_screen"), for: .selected)
//		}
//	}
//	
//	func setupFullScreenBtn() {
//		if isDeviceOrientationPortrait() {
//			fullScreenBtn.isHidden = false
//		} else {
//			fullScreenBtn.isHidden = true
//		}
//	}
//	
//	func setupQualityBtn() {
//		if isDeviceOrientationPortrait() {
//			qualityBtn.isHidden = true
//			qualityLDBtn.isHidden = true
//			qualityFDBtn.isHidden = true
//		} else {
//			qualityBtn.isHidden = false
//			qualityLDBtn.isHidden = false
//			qualityFDBtn.isHidden = false
//		}
//	}
//	
//	func setupTimeLabels() {
//		if isDeviceOrientationPortrait() {
//			totalTimeLabel.isHidden = false
//			currentTimeLabel.isHidden = false
//			currentTimeLabelLandscape.isHidden = true
//		} else {
//			totalTimeLabel.isHidden = true
//			currentTimeLabel.isHidden = true
//			currentTimeLabelLandscape.isHidden = false
//			if (currentTimeLabelLandscape.text == "") {
//				currentTimeLabelLandscape.text = "00:00/\(getTotalTimeString())"
//			}
//		}
//	}
//	
//	func setupNavigation() {
//		if isDeviceOrientationPortrait() {
//			SharedApplication.setStatusBarStyle(.lightContent, animated: true)
//			SharedApplication.setStatusBarHidden(false, with: .none)
//			navigationView.isHidden = true
//			self.view.backgroundColor = UIColor.black
//		} else {
//			SharedApplication.setStatusBarStyle(.lightContent, animated: true)
//			SharedApplication.setStatusBarHidden(false, with: .none)
//			navigationView.isHidden = false
//			self.view.backgroundColor = UIColor.black
//		}
//	}
//	
//	func setupBuyMemberView() {
//		buyMemberBtn.backgroundColor = UIColor.rgb("ff914c")
//		buyMemberBtn.layer.cornerRadius = buyMemberBtnHeight.constant * 0.5
//		buyMemberBtn.layer.masksToBounds = true
//	}
//	
//	// MARK: - 初始化播放器
//	
//	func setupVideoPlayer() {
//		player = AliyunVodPlayer()
//		DebugLog("AliyunVodPlayer版本  \(player!.getSDKVersion())")
//		player!.isAutoPlay = false
//		player!.setAliyunVodPlayerDelegate(self)
//		player!.initAccessKeyAndApiKey(AppID, andAppSecret: AppSecret, andApiKey: ApiKey, playAuth: nil, play: .vidAndAK)
//	}
//	
//	// MARK: 横屏下点击播放器
//	
//	func tapPlayer() {
//		if (showingViewLandspace) {
//			return
//		}
//		
////		if !isDeviceOrientationPortrait() {
//			UIView.animate(withDuration: 0.25, animations: { [weak self] in
//				guard let strongSelf = self else { return }
//				
//				strongSelf.toolView.alpha = 1
//				strongSelf.navigationView.alpha = 1
//				SharedApplication.setStatusBarHidden(false, with: .none)
//				
//				strongSelf.showingViewLandspace = true
//			}, completion: { [weak self] (finished) in
//				guard let strongSelf = self else { return }
//				
//				strongSelf.perform(#selector(strongSelf.hideViewLandspace), with: nil, afterDelay: 2)
//			})
////		}
//	}
//	
//	// MARK: 横屏下隐藏view
//	
//	func hideViewLandspace() {
//		UIView.animate(withDuration: 0.25) { [weak self] in
//			guard let strongSelf = self else { return }
//			
//			strongSelf.toolView.alpha = 0
//			strongSelf.navigationView.alpha = 0
//			strongSelf.showingViewLandspace = false
//			if (strongSelf.isDeviceOrientationPortrait()) {
//				SharedApplication.setStatusBarHidden(false, with: .none)
//			} else {
//				SharedApplication.setStatusBarHidden(true, with: .none)
//			}
//		}
//	}
//	
//	// MARK: - 初始化下载
//	
//	func setupDownloadManager() {
//		downloadManager = AliyunVodDownLoadManager.share()
//		downloadManager!.downloadDelegate = self
//		downloadManager!.downLoadInfoListenerDelegate(self)
//		DebugLog("AliyunVodDownLoadManager版本  \(downloadManager!.getSDKVersion())")
//		if let path = setupDownloadPath() {
//			downloadManager!.setDownLoadPath(path)
//		} else {
//			ErrorLog("本地存储路径错误")
//		}
//		//		downloadManager?.setDownloadPassword("helloworldivydad")
//	}
//	
//	// MARK: - 设置通知
//	
//	func setupNotification() {
//		SharedNotificationCenter.addObserver(self, selector: #selector(deviceOrientationDidChange), name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil)
//	}
//	
//	// MARK: - 判断屏幕方向
//	
//	func isDeviceOrientationPortrait() -> Bool {
//		let o = SharedApplication.statusBarOrientation.rawValue
//		return o == UIInterfaceOrientation.portrait.rawValue
//	}
//	
//	// MARK: 屏幕旋转
//	
//	func deviceOrientationDidChange() {
//		setupPlayBtn()
//		setupFullScreenBtn()
//		setupQualityBtn()
//		setupTimeLabels()
//		setupNavigation()
//		setupLayout()
//		tapPlayer()
//		
//		view.layoutIfNeeded()
//	}
//	
//	// MARK: -  生成图片
//	
//	/// 颜色转成图片
//	func generalImage(_ color: UIColor, _ size: CGSize) -> UIImage {
//
//		let rect = CGRect.init(x: 0, y: 0, width: size.width, height: size.height)
//		UIGraphicsBeginImageContext(rect.size)
//		if let context = UIGraphicsGetCurrentContext() {
//			context.setFillColor(color.cgColor)
//			context.fillEllipse(in: rect)
//		}
//
//		let image = UIGraphicsGetImageFromCurrentImageContext()
//		UIGraphicsEndImageContext()
//
//		return image!
//	}
//	
//	// MARK: - 按钮事件
//	
//	@IBAction func backBtnClick(_ sender: UIButton) {
//		// TODO 回到上一页
//	}
//	@IBAction func navBackBtnClick(_ sender: UIButton) {
//		// TODO 回到上一页
//	}
//	
//	/// 重播按钮点击
//	@IBAction func replayBtnClick() {
//		needPlay = true
//		preparePlay()
//		
//		play()
//	}
//	
//	func preparePlay() {
//		// TODO 如果本地有，从本地读取，否则从网络加载
//        if let filePath = didDownloadedInfo?.downloadFilePath {
//            player?.isAutoPlay = true
//			player?.prepare(with: URL(fileURLWithPath: filePath))
//		} else {
//			player?.prepare(withVid: videoId)
//			player?.isAutoPlay = true
//		}
//	}
//	
//	func play() {
//		replayBtn.isHidden = true
//		playBtn.isSelected = true
//		
//		// TODO 没准备好，给提示
//        if (player != nil && !player!.isAutoPlay) {
//            player!.start()
//        }
//	}
//	
//	// MARK: 播放/暂停 按钮点击
//	
//	@IBAction func playBtnClick(_ sender: UIButton) {
//		if sender.isSelected {
//			player?.pause()
//			
//		} else {
//			switch player!.playerState() {
//			case .stop:
//				JDToast.show("stop")
//				play()
//				
//			case .prepared:
//				JDToast.show("prepared")
//				play()
//				
//			case .preparing:
//				JDToast.show("正在加载视频，请稍后")
//				
//			case .pause:
//				player!.resume()
//				
//			case .idle:
//				// TODO  上线前检查怎么回事
//				// 刚进入页面时，是这个状态
//				JDToast.show("空转，闲时，静态")
//				preparePlay()
//				
//			case .error:
//				JDToast.show("error")
////				needPlay = true
//				preparePlay()
//				
////				JDToast.show("出错了，请稍后再试")
//				
//			default:
//				break
//			}
//		}
//		
//		sender.isSelected = !sender.isSelected
//	}
//	
//	// MARK: 全屏按钮点击
//	
//	@IBAction func fullBtnClick(_ sender: UIButton) {
//		if (isFullScreen) {
//			let value = UIInterfaceOrientation.portrait.rawValue
//			UIDevice.current.setValue(value, forKey: "orientation")
//		} else {
//			let value = UIInterfaceOrientation.landscapeRight.rawValue
//			UIDevice.current.setValue(value, forKey: "orientation")
//		}
//		isFullScreen = !isFullScreen
//	}
//	
//	// MARK: 切换视频质量
//	
//	@IBAction func qualityBtnClick(_ sender: UIButton) {
//		if let player = player {
//			player.videoQuality = .videoOD
//		}
//	}
//	
//	@IBAction func qualityFDBtnClick(_ sender: UIButton) {
//		if let player = player {
//			player.videoQuality = .videoFD
//		}
//		
//		
//		if let info = downloadedInfo {
//			downloadManager?.clearDownLoadingMedia(info)
//			DebugLog("删除成功")
//		}
//	}
//	
//	@IBAction func qualityLDBtnClick(_ sender: UIButton) {
//		if let player = player {
//			player.videoQuality = .videoLD
//		}
//	}
//	
//	// MARK: - 购买金卡会员
//	
//	@IBAction func buyMemberBtnClick(_ sender: UIButton) {
//		// TODO 购买金卡会员逻辑
//		DebugLog("点击了 立即开通")
//	}
//	
//	
//	
//
//	// MARK: - AliyunVodPlayerViewDelegate
//	
//	func alPlayer(onEventCallback event: AliyunVodPlayerEvent, params: [AnyHashable : Any]!) {
//		DebugLog("\(event.rawValue)   \(params)")
//		
//		switch event {
//		case .error:
//			errorEventWithALPlayerDelegate(params)
//			break
//			
//		case .prepareDone:
//			prepareDoneEventWithALPlayerDelegate(params)
//			
//		case .play:
//			playEventWithALPlayerDelegate(params)
//			
//		case .pause:
//			pauseEventWithALPlayerDelegate(params)
//			
//		case .stop:
//			stopEventWithALPlayerDelegate(params)
//			
//		case .seekDone: // 拖动完成
//			seekDoneEventWithALPlayerDelegate(params)
//			
//		case .networkSpeed:
//			networkSpeedEventWithALPlayerDelegate(params)
//			
//		case .loadedTime: // 视频已经加载的时间
//			loadedTimeEventWithALPlayerDelegate(params)
//			
//		case .currentTime: // 视频播放当前时间
//			currentTimeEventWithALPlayerDelegate(params)
//			
//		case .beginLoading: // 开始加载
//			beginLoadingEventWithALPlayerDelegate(params)
//			
//		case .endLoading: // 结束加载
//			endLoadingEventWithALPlayerDelegate(params)
//			
////		case .willSwitchToQuality:
////			willSwitchToQualityEventWithALPlayerDelegate(params)
////		case .didSwitchToQuality:
////			didSwitchToQualityEventWithALPlayerDelegate(params)
////		case .failSwitchToQuality:
////			failSwitchToQualityEventWithALPlayerDelegate(params)
//			
//		default: break
//		}
//	}
//	
//	func errorEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		ErrorLog("请求视频数据出错：")
//	
////		needPlay = true
////		preparePlay()
//	}
//	
//	func prepareDoneEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		DebugLog("视频准备完成")
//		
//		var video: AliyunVodPlayerVideo!
//		if let videoParam = params?[AL_DELEGATE_KEY_VIDEO] as? AliyunVodPlayerVideo {
//			video = videoParam
//		} else {
//            // 本地视频
//			video = AliyunVodPlayerVideo()
//			video.title = didDownloadedInfo!.title
//			video.duration = Double(didDownloadedInfo!.duration)
//            video.videoId = didDownloadedInfo!.vid
//		}
//		currentVideo = video
//		
//		player!.videoQuality = CurrentQuality
//		if currentVideo != nil {
//			totalTimeLabel.text = getTimeString(currentVideo!.duration)
//			progressSlider.minimumValue = 0
//			progressSlider.maximumValue = Float(currentVideo!.duration)
//		}
//		if needPlay {
//			play()
//		}
//	}
//	
//	func playEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		tapPlayer()
//		player!.videoQuality = CurrentQuality
//	}
//	
//	func pauseEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		DebugLogFunc()
//	}
//	
//	func stopEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		playerView.bringSubview(toFront: replayBtn)
//		replayBtn.isHidden = false
//		playBtn.isSelected = false
//		progressSlider.value = 0
//		currentTimeLabel.text = "00:00"
//		currentTimeLabelLandscape.text = "00:00/\(getTotalTimeString())"
//	}
//	
//	func seekDoneEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		DebugLog(params)
//	}
//	
//	func networkSpeedEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		DebugLog(params)
//	}
//	
//	/// 加载完成
//	func loadedTimeEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		// TODO 显示已加载的进度
//		if (params == nil) { return }
//		guard let time = params!["time"] as? Double else { return }
//		guard let video = currentVideo else { return }
//		
//		if (time >= video.duration) {
//			return
//		}
//		DebugLog("已加载文件进度: \(time)")
//		
//// 		TODO:已加载多少
//	}
//	
//	func currentTimeEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		if (params == nil) { return }
//		
//		guard let time = params!["time"] as? Double else { return }
//		
//		progressSlider.value = Float(time)
//		if (isDeviceOrientationPortrait()) {
//			currentTimeLabel.text = getTimeString(time)
//		} else {
//			currentTimeLabelLandscape.text = "\(getTimeString(time))/\(getTotalTimeString())"
//		}
//	}
//	
//	/// 开始加载
//	func beginLoadingEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		DebugLog("开始加载  \(params)")
//	}
//	
//	/// 加载完成，进入prepare方法.  并不是缓存完毕
//	func endLoadingEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
//		DebugLog("加载完成  \(params)")
//	}
//	
////	func willSwitchToQualityEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
////		DebugLogFunc()
////	}
//	
////	func didSwitchToQualityEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
////		DebugLog(params)
////	}
//	
////	func failSwitchToQualityEventWithALPlayerDelegate(_ params: [AnyHashable : Any]?) {
////		DebugLog(params)
////	}
//	
//	func getTimeString(_ seconds: Double) -> String {
//		let dateFormat = DateFormatter()
//		dateFormat.dateFormat = "mm:ss"
//		let now = Date(timeIntervalSinceReferenceDate: TimeInterval(seconds))
//		return dateFormat.string(from: now)
//	}
//	
//	func getTotalTimeString() -> String {
//		if currentVideo != nil {
//			let timeStr = getTimeString(currentVideo!.duration)
//			return timeStr
//		}
//		return "00:00"
//	}
//	
//	
//	
//	
//	
//	// MARK: - 下载
//	
//	/// 准备下载
//	func prepareDownload() {
//		let source = AliyunDataSource()
//		source.vid = videoId
//		source.apikey = ApiKey
//		source.accessKeyID = AppID
//		source.accessKeySecret = AppSecret
//		source.method = .vidAndAK
////		source.quality = .videoFD
////		source.format = "m3u8"
//		downloadManager?.prepareDownloadMedia(source)
//	}
//	
//	/// 视频已经被下载过
//	func mediaIsDownloaded() -> Bool {
//		// TODO 从数据库中获取文件是否被下载过，如果下载过
//		return getFilePath() != nil
//	}
//	
//	func downloadFileDidPrepared(_ mediaInfos: [AliyunDownloadMediaInfo]) {
//		for info in mediaInfos {
//			DebugLog("视频质量：格式：\(info.format!)  质量：\(info.quality.rawValue)  \(String(format: "%.2f", CGFloat(info.size)/(1024*1024)))M")
//			
//			// TODO 提供给老板看的数据
//			if info.format == "mp4" {
//				if info.quality.rawValue == 0 {
//					titleLabel.text = "\(titleLabel.text!)  流畅：\(String(format: "%.2f", CGFloat(info.size)/(1024*1024)))M"
//				} else if info.quality.rawValue == 1 {
//					titleLabel.text = "\(titleLabel.text!)  标清：\(String(format: "%.2f", CGFloat(info.size)/(1024*1024)))M"
//				} else if info.quality.rawValue == 6 {
//					titleLabel.text = "\(titleLabel.text!)  原画：\(String(format: "%.2f", CGFloat(info.size)/(1024*1024)))M"
//				}
//			}
//			
//			// TODO 设置一个当前的 音频播放质量，用于下载
//			// 这里好判断
//			if info.format == "mp4" && info.quality == CurrentQuality {  // HLS
//				download(info)
//			}
//		}
//	}
//	
//	func download(_ info: AliyunDownloadMediaInfo) {
//		let source = AliyunDataSource()
//		source.vid = info.vid
//		source.apikey = ApiKey
//		source.accessKeyID = AppID
//		source.accessKeySecret = AppSecret
//		source.quality = info.quality
//		source.format = info.format
//		source.method = .vidAndAK
//		downloadManager?.startDownloadMedia(source)
//		
//		DebugLog("开始下载")
//		DebugLog("质量：\(info.quality.rawValue)  格式：\(source.format)  \(String(format: "%.2f", CGFloat(info.size)/(1024*1024)))M")
//	}
//	
//	func setupDownloadPath() -> String? {
//		if let cachePath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first {
//			let path = "\(cachePath)/IvyDad/Video/Cartoon"
//			if !SharedFileManager.fileExists(atPath: path) {
//				do {
//					try SharedFileManager.createDirectory(at: URL(fileURLWithPath: path), withIntermediateDirectories: true, attributes: nil)
//				} catch let msg {
//					ErrorLog(msg)
//				}
//			}
//			return path
//		}
//		return nil
//	}
//	
//	
//	/// 获取本地文件路径
//	func getFilePath() -> String? {
//		// TODO 从本地获取文件是否存在
//		if didDownloadedInfo?.downloadFilePath != nil {
//			return didDownloadedInfo?.downloadFilePath
//		}
//		return nil
//	}
//	
//	// MARK: - AliyunVodDownLoadDelegate
//	
//	func onStart(_ mediaInfo: AliyunDownloadMediaInfo!) {
//		if let vid = mediaInfo.vid {
//			DebugLog("开始下载vid：" + vid)
//		}
//	}
//	
//	func onStop(_ mediaInfo: AliyunDownloadMediaInfo!) {
//		DebugLog(mediaInfo.vid)
//	}
//	
//	func onCompletion(_ mediaInfo: AliyunDownloadMediaInfo!) {
//		DebugLog(mediaInfo.vid)
//		DebugLog(mediaInfo.downloadFilePath)
//        didDownloadedInfo = mediaInfo
//		
//		// TODO 保存到本地
//		
//		downloadedInfo = mediaInfo
//		downladedVideoID = videoId
//	}
//	
//	func onUnFinished(_ mediaInfos: [AliyunDataSource]!) {
//		DebugLog("未下载完成的数量：\(mediaInfos.count)")
//	}
//	
//	func onProgress(_ mediaInfo: AliyunDownloadMediaInfo!) {
//		DebugLog(mediaInfo.downloadProgress)
//	}
//	
//	func onPrepare(_ mediaInfos: [AliyunDownloadMediaInfo]!) {
//		DebugLog("下载已准备,count=\(mediaInfos.count)")
//		downloadFileDidPrepared(mediaInfos)
//	}
//	
//	func onError(_ mediaInfo: AliyunDownloadMediaInfo!, code: Int32, msg: String!) {
//		DebugLog(mediaInfo.vid)
//		DebugLog(code)
//		DebugLog(msg)
//	}
//	
//
//	// MARK: 这几个方法暂时不用
//	public func onChangeEncryptFileComplete() {
//		
//	}
//	
//	public func onChangeEncryptFileProgress(_ progress: Int32) {
//		
//	}
//	
//	public func onGetPlayAuth(_ vid: String!, format: String!, quality: AliyunVodPlayerVideoQuality) -> String! {
//		return ""
//	}
//
//}
